CSS ๋ด์ฌ์ ํฌ๊ธฐ ์ธก์ ์ ํ์ ํ์ฉํ์ธ์! ์ฝํ ์ธ ๊ธฐ๋ฐ ์์ ํฌ๊ธฐ ์กฐ์ , ๋ฐ์ํ ๋ ์ด์์ ์์ฑ, ๊ธ๋ก๋ฒ ์ฌ์ฉ์ ๋ง์ถค ์น ๋์์ธ ์ต์ ํ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.
CSS ๋ด์ฌ์ ํฌ๊ธฐ ์ธก์ : ์ฝํ ์ธ ์ฐจ์ ๊ณ์ฐ ๋ง์คํฐํ๊ธฐ
๋์์์ด ๋ฐ์ ํ๋ ์น ๊ฐ๋ฐ ํ๊ฒฝ์์ ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ์ ์ฝํ ์ธ ๋ณํ์ ์์ฐ์ค๋ฝ๊ฒ ์ ์ํ๋ ๋ ์ด์์์ ๋ง๋๋ ๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. CSS ๋ด์ฌ์ ํฌ๊ธฐ ์ธก์ ์ ๊ฐ๋ฐ์๊ฐ ๊ณ ์ ๋ ๊ฐ์ด ์๋, ์์๊ฐ ํฌํจํ๋ ์ฝํ ์ธ ์ ๋ฐ๋ผ ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋๋๋ก ํ์ฌ ๋์ ์ด๊ณ ๋ฐ์์ ์ธ ๋์์ธ์ ๊ตฌ์ถํ ์ ์๋๋ก ์ง์ํฉ๋๋ค. ์ด ๊ธ์ ์ด๋ฌํ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ดํดํ๊ณ ํ์ฉํ๊ธฐ ์ํ ํฌ๊ด์ ์ธ ๊ฐ์ด๋๋ผ์ธ์ ์ ๊ณตํ๋ฉฐ, ์น ๋์์ธ์ด ์๊ฐ์ ์ผ๋ก ๋งค๋ ฅ์ ์ผ ๋ฟ๋ง ์๋๋ผ ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํด ์ต์ ์ผ๋ก ๊ธฐ๋ฅํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
๊ธฐ๋ณธ ์ดํด: ๋ด์ฌ์ vs. ์ธ์ฌ์ ํฌ๊ธฐ
์ธ๋ถ ์ฌํญ์ผ๋ก ๋ค์ด๊ฐ๊ธฐ ์ ์ ๋ด์ฌ์ ํฌ๊ธฐ์ ์ธ์ฌ์ ํฌ๊ธฐ๋ฅผ ๊ตฌ๋ถํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ธ์ฌ์ ํฌ๊ธฐ๋ ํฝ์ (px), ํผ์ผํธ(%), ๋ทฐํฌํธ ๋จ์(vw, vh)์ ๊ฐ์ ๋ช ์์ ์ธ ๊ฐ์ ์ฌ์ฉํ์ฌ ์์ ํฌ๊ธฐ๋ฅผ ์ค์ ํ๋ ๊ฒ์ ๋งํฉ๋๋ค. ์ธ์ฌ์ ํฌ๊ธฐ๋ ์ ๋ฐํ ์ ์ด๋ฅผ ์ ๊ณตํ์ง๋ง, ์ฝํ ์ธ ๊ฐ ๋ณ๊ฒฝ๋๊ฑฐ๋ ๋ทฐํฌํธ ํฌ๊ธฐ๊ฐ ํฌ๊ฒ ๋ฌ๋ผ์ง๋ฉด ์ ์ฐํ์ง ๋ชปํ ๋ ์ด์์์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
๋ฐ๋ฉด์ ๋ด์ฌ์ ํฌ๊ธฐ๋ ์์๊ฐ ํฌํจํ๋ ์ฝํ ์ธ ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํ๋๋ก ํฉ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ๋ฐ์์ฑ๊ณผ ์ ์์ฑ์ ์ด์งํ์ฌ ํ๋ ์น ๋์์ธ์์ ๊ท์คํ ๋๊ตฌ์ ๋๋ค. CSS๋ ๋ด์ฌ์ ํฌ๊ธฐ๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด ์ฌ๋ฌ ํค์๋์ ์์ฑ์ ์ ๊ณตํ๋ฉฐ, ๊ฐ ํค์๋์ ์์ฑ์ ๊ณ ์ ํ ๋์์ค์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
ํต์ฌ ๊ฐ๋ : ๋ด์ฌ์ ํฌ๊ธฐ๋ฅผ ์ํ ํค์๋
๋ค์ ํค์๋๋ CSS ๋ด์ฌ์ ํฌ๊ธฐ๋ฅผ ์ดํดํ๊ณ ํ์ฉํ๋ ๋ฐ ํ์์ ์ ๋๋ค:
- max-content: ์ด ํค์๋๋ ์์๊ฐ ๋์น์ง ์๊ณ ์ฝํ ์ธ ๋ฅผ ๋ด๋ ๋ฐ ํ์ํ ์ต๋ ํฌ๊ธฐ๋ก ์์์ ๋๋น ๋๋ ๋์ด๋ฅผ ์ค์ ํฉ๋๋ค. ๊ฐ์ฅ ๊ธด ๋จ์ด๋ ๊ฐ์ฅ ํฐ ์ด๋ฏธ์ง๋ฅผ ์์ฉํ๊ธฐ ์ํด ์์๊ฐ ํ์ฅ๋๋ ๊ฒ์ผ๋ก ์๊ฐํ๋ฉด ๋ฉ๋๋ค.
- min-content: ์ด ํค์๋๋ ์ค ๋ฐ๊ฟ์ ํผํ๋ฉด์ ์ฝํ ์ธ ๋ฅผ ๋ด๋ ๋ฐ ํ์ํ ์ต์ ํฌ๊ธฐ๋ก ์์์ ๋๋น ๋๋ ๋์ด๋ฅผ ์ค์ ํฉ๋๋ค. ๋ณธ์ง์ ์ผ๋ก ๊ฐ๋ฅํ ํ ๋ง์ ์ฝํ ์ธ ๋ฅผ ํ ์ค์ ๋ง์ถ๋ ค๊ณ ์๋ํฉ๋๋ค.
- fit-content: ์ด ํค์๋๋ max-content์ min-content์ ํผํฉ์ ์ ๊ณตํฉ๋๋ค. ์์๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ ์ฐจ์งํ๋๋ก ํ์ฉํ์ง๋ง max-content๋ก ์ ํํฉ๋๋ค. ๋ค๋ฅธ ํฌ๊ธฐ ์กฐ์ ์์ฑ๊ณผ ํจ๊ป ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค.
- auto: ์๋ฐํ ๋งํ๋ฉด ๋ด์ฌ์ ์ด์ง๋ ์์ง๋ง, `auto` ๊ฐ์ ์ข ์ข ๋ด์ฌ์ ํฌ๊ธฐ์ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ ์ฝํ ์ธ ๋ฐ ๊ธฐํ ๋ ์ด์์ ์ ์ฝ ์กฐ๊ฑด์ ๊ธฐ๋ฐ์ผ๋ก ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํ๋๋ก ํ์ฉํฉ๋๋ค.
๊ฐ ํค์๋ ์์ธ ํ์
max-content
max-content ํค์๋๋ ๊ธด ์ ๋ชฉ์ด๋ ๊ธด ํ
์คํธ ๋ฌธ์์ด์ด ํฌํจ๋ ํ
์ด๋ธ ์
๊ณผ ๊ฐ์ด ์์๊ฐ ์ฝํ
์ธ ๋ฅผ ๋ง์ถ๊ธฐ ์ํด ํ์ฅ๋๋๋ก ํ๊ณ ์ถ์ ๋ ํนํ ์ ์ฉํฉ๋๋ค. ์ด HTML์ ๊ณ ๋ คํด ๋ณด์ธ์:
<div class="max-content-example"
This is a very long and descriptive heading that will use max-content.
</div>
๊ทธ๋ฆฌ๊ณ ์ด CSS:
.max-content-example {
width: max-content;
border: 1px solid black;
padding: 10px;
}
div๋ ํ
์คํธ๊ฐ ์ค ๋ฐ๊ฟ๋์ง ์๊ณ ์ ์ฒด ์ ๋ชฉ์ ํ์ํ๋ ๋ฐ ํ์ํ ๋๋น๋ก ํ์ฅ๋ฉ๋๋ค. ์ด๋ ๋ฒ์ญ์ด ๊ธธ์ด์ ธ ๋ ์ด์์์ด ๊นจ์ง๋ ๊ฒฝ์ฐ๋ฅผ ์์ฉํ ์ ์๋ ๊ตญ์ ํ์ ํนํ ์ ์ฉํฉ๋๋ค.
min-content
min-content ํค์๋๋ ์์๊ฐ ๋์น์ง ์๊ณ ์ฝํ
์ธ ๋ฅผ ํ์ํ๋ฉด์๋ ๊ฐ๋ฅํ ํ ์๊ฒ ๋ง๋ค๊ณ ์ถ์ ๋ ์ ์ฉํฉ๋๋ค. ์ค ๋ฐ๊ฟ ์์ด ๊ฐ์ฅ ๋์ ์ฝํ
์ธ ์กฐ๊ฐ์ ๋๋น๋ก ์๊ฐํ๋ฉด ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ฐ๋ก ํ์ ์๋ ์ผ๋ จ์ ์ด๋ฏธ์ง๋ฅผ ๊ณ ๋ คํด ๋ณด์ธ์. min-content๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ด ๊ฐ์ฅ ๋์ ์ด๋ฏธ์ง์ ๋ง๋๋ก ์ถ์๋ฉ๋๋ค.
์ด HTML์ ๊ณ ๋ คํด ๋ณด์ธ์:
<div class="min-content-example"
<img src="image1.jpg" alt="Image 1"
<img src="image2.jpg" alt="Image 2"
<img src="image3.jpg" alt="Image 3"
</div>
๊ทธ๋ฆฌ๊ณ ์ด CSS:
.min-content-example {
display: flex;
width: min-content;
border: 1px solid black;
padding: 10px;
}
.min-content-example img {
width: 50px; /* Or other appropriate sizing */
height: auto;
margin-right: 10px;
}
์ปจํ
์ด๋๋ ์ด๋ฏธ์ง๋ฅผ ํ์ํ๋ ๋ฐ ํ์ํ ์ต์ ๋๋น๋ก ์ถ์๋๋ฉฐ, ์ปจํ
์ด๋๊ฐ ์ถฉ๋ถํ ๋์ง ์์ผ๋ฉด ์ด๋ฏธ์ง๊ฐ ์ค ๋ฐ๊ฟ๋ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฏธ์ง๋ ์ต์ ์ค ๋ฐ๊ฟ ์๋ ํฌ๊ธฐ๋ฅผ ์ ์งํฉ๋๋ค. ์ด๋ฏธ์ง ์์ฒด์ width: min-content๋ฅผ ์ค์ ํ๋ฉด ์์ฐ์ค๋ฌ์ด ๋๋น๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ ๊ณผ๋ํ ํฐ์ ๊ณต๊ฐ์ ํผํ๊ธฐ ์ํด ์ฐจ์์ด ๋ค๋ฅธ ์ด๋ฏธ์ง์ ์ ์ฉํฉ๋๋ค.
fit-content
fit-content ํค์๋๋ max-content์ min-content์ ์ด์ ์ ๋ชจ๋ ๊ฒฐํฉํ ๋ค์ฌ๋ค๋ฅํ ์ต์
์
๋๋ค. ๋ณธ์ง์ ์ผ๋ก ๊ฐ๋ฅํ ํ ๋ง์ ๊ณต๊ฐ์ ์ฐจ์งํ๋ ค๊ณ ํ์ง๋ง max-content ํฌ๊ธฐ๋ก ์ ํ๋ฉ๋๋ค. fit-content์ ๋์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ ํฌ๊ฒ ์ํฅ์ ๋ฐ์ต๋๋ค.
์ด HTML์ ๊ณ ๋ คํด ๋ณด์ธ์:
<div class="fit-content-example"
<p>This is a short paragraph.</p>
</div>
๊ทธ๋ฆฌ๊ณ ์ด CSS:
.fit-content-example {
width: 50%; /* Example: 50% of the parent's width */
border: 1px solid black;
padding: 10px;
margin: 10px;
}
.fit-content-example p {
width: fit-content;
border: 1px solid gray;
padding: 10px;
}
๋ถ๋ชจ div๊ฐ ๋ทฐํฌํธ์ 50% ๋๋น๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด, ์์ชฝ์ ๋จ๋ฝ์ ํด๋น ์ฌ์ฉ ๊ฐ๋ฅํ ๋๋น๋ฅผ ์ฐจ์งํ๋ ค๊ณ ์๋ํ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ ๋จ๋ฝ์ fit-content ์ค์ ์ ํ
์คํธ๋ฅผ ํ์ํ๋ ๋ฐ ํ์ํ ์ต์ ํฌ๊ธฐ๋ก ์ถ์๋๋๋ก ํฉ๋๋ค. ๋จ๋ฝ ๋ด์ฉ์ด ๋ ๊ธธ๋ฉด ์ฌ์ฉ ๊ฐ๋ฅํ ๋๋น(๋ทฐํฌํธ์ 50%๊น์ง)๋ฅผ ์ฑ์ฐ๊ธฐ ์ํด ํ์ฅ๋์ง๋ง ๊ทธ ์ด์์ ์๋๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ ๋ฐ์ ์ธ ๋ ์ด์์์ ์กด์คํ๋ฉด์ ์ฝํ
์ธ ์ ์ ์ํด์ผ ํ๋ ์ ์ฐํ ๊ตฌ์ฑ ์์์ ์ด์์ ์
๋๋ค.
์ค์ ์์ฉ ํ๋ก๊ทธ๋จ ๋ฐ ์์
๋ด์ฌ์ ํฌ๊ธฐ๋ ๋ค์ํ ์น ๋์์ธ ์๋๋ฆฌ์ค์์ ๋งค์ฐ ์ ์ฉํฉ๋๋ค:
- ๋ฐ์ํ ํ
์ด๋ธ: ํ
์ด๋ธ ์
์
width: max-content๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ ์ ์์ ๊ฐ์ฅ ๊ธด ์ฝํ ์ธ ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด ๋๋น๋ฅผ ์กฐ์ ํ ์ ์์ด ๋ค์ํ ๋ฐ์ดํฐ์ ๋ํ ๋ฐ์ด๋ ์ ์์ฑ์ ์ ๊ณตํฉ๋๋ค. - ๋์ ๋ค๋น๊ฒ์ด์ ๋ฉ๋ด: ๋ฉ๋ด ํญ๋ชฉ์ ๊ธธ์ด์ ๋ฐ๋ผ ๋ค๋น๊ฒ์ด์ ๋ฉ๋ด๊ฐ ์กฐ์ ๋ ์ ์์ต๋๋ค. ๋ฉ๋ด ํญ๋ชฉ์ `width: fit-content;`๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ํ ๊ณต๊ฐ๋ง ์ฐจ์งํ๊ณ ํ์งํ์ ๋ฐ์ํ๋๋ก ํฉ๋๋ค.
- ์ฝํ
์ธ ๊ฐ ๋ง์ ์ฌ์ด๋๋ฐ: ์ฌ์ด๋๋ฐ๋ ์ฌ์ฉ์ ํ๋กํ์ด๋ ๋์ ๊ด๊ณ ์ ๊ฐ์ด ๋ค์ํ ์์ ์ฝํ
์ธ ๋ฅผ ์์ฉํ๊ธฐ ์ํด ๋๋น๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํ ์ ์์ต๋๋ค. ์ฌ์ด๋๋ฐ ์ฝํ
์ธ ์
width: fit-content๋ฅผ ์ฌ์ฉํ์ธ์. - ์ด๋ฏธ์ง ๊ฐค๋ฌ๋ฆฌ: ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋ฐ์์ ์ผ๋ก ํฌ๊ธฐ ์กฐ์ ํ๋ ์ด๋ฏธ์ง ๊ฐค๋ฌ๋ฆฌ๋ฅผ ๊ตฌํํ์ฌ ๋ค์ํ ์ฅ์น์ ๋ ์ ์ ์ํ๋ ๋ ์ด์์์ ๋ง๋ญ๋๋ค. ์ต๋ ์ ์ฐ์ฑ์ ์ํด ์ปจํ ์ด๋ ์์ฒด์ ๋ด์ฌ์ ํฌ๊ธฐ๋ฅผ ์ ์ฉํ๋ ๊ฒ๊ณผ ํจ๊ป ์ ์ฐํ ์ปจํ ์ด๋ ๋ด์ ์ด๋ฏธ์ง์ `max-width: 100%` ๋๋ `width: 100%`๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์. ์ด๋ ๋ค์ํ ๋์คํ๋ ์ด ํฌ๊ธฐ์ ์ฐ๊ฒฐ ์๋๋ฅผ ๊ฐ์ง ์ฅ์น์ ์ฌ์ฉ์์๊ฒ ์ด๋ฏธ์ง๋ฅผ ์ ๊ณตํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
- ๊ตญ์ ํ๋ ์ฝํ ์ธ : ์ฌ๋ฌ ์ธ์ด๋ก ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํ๋ ์น์ฌ์ดํธ๋ ๋ด์ฌ์ ํฌ๊ธฐ์์ ์์ฒญ๋ ์ด์ ์ ์ป์ ์ ์์ต๋๋ค. ๋ค๋ฅธ ์ธ์ด๋ ์ข ์ข ๋ค๋ฅธ ๋จ์ด ๊ธธ์ด๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ด์ฌ์ ํฌ๊ธฐ๋ ๋ ์ด์์์ด ๊นจ์ง๊ฑฐ๋ ๋ณด๊ธฐ ํํ ์ค ๋ฐ๊ฟ ์์ด ์ด๋ฌํ ์ฐจ์ด๋ฅผ ์ฐ์ํ๊ฒ ์์ฉํ๋๋ก ํฉ๋๋ค. ์ด๋ ์ ์ธ๊ณ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ๋ ์น์ฌ์ดํธ์ ํ์์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ณตํฉ ๋ช ์ฌ๋ก ์ ๋ช ํ ๋ ์ผ์ด๋ ๋ ์ด์์์์ ํน์ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๋ ๊ธด ๋จ์ด๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
๋ฐ์ํ ํ ์ด๋ธ ๋์์ธ์ ๋ํ ๋ ์์ธํ ์์ ๋ฅผ ํตํด ์ค๋ช ํด ๋ณด๊ฒ ์ต๋๋ค:
<table>
<thead>
<tr>
<th>Product Name</th>
<th>Description</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td>Super Widget</td>
<td>This is a very useful widget for doing widget things.</td>
<td>$99.99</td>
</tr>
<tr>
<td>Mega Widget</td>
<td>A more powerful version of the Super Widget.</td>
<td>$149.99</td>
</tr>
</tbody>
</table>
๊ทธ๋ฆฌ๊ณ ํด๋น CSS:
table {
width: 100%;
border-collapse: collapse;
}
th, td {
border: 1px solid #ccc;
padding: 8px;
text-align: left;
}
th {
background-color: #f2f2f2;
}
th, td {
width: max-content; /* Important for responsive sizing */
}
์ด ์์์ ํ
์ด๋ธ ์
์ width: max-content๋ฅผ ์ค์ ํ๋ฉด ์ฝํ
์ธ ๋ฅผ ๋ง์ถ๊ธฐ ์ํด ํ์ฅ๋์ด ๊ธด ์ ํ ์ด๋ฆ์ด๋ ์ค๋ช
์ด ์๋ฆฌ์ง ์๋๋ก ํฉ๋๋ค. ํ
์ด๋ธ ์์ฒด๋ ๋ชจ๋ฐ์ผ ์ฅ์น์์๋ ์ปจํ
์ด๋์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋๋น์ ๋ง๊ฒ ํ์ฅ๋ฉ๋๋ค.
๋ด์ฌ์ ํฌ๊ธฐ ์ธก์ ๊ณผ ์ฌ์ฉ ๊ฐ๋ฅํ ํฌ๊ธฐ
๋ด์ฌ์ ํฌ๊ธฐ๋ฅผ ๋ค๋ฃฐ ๋ โ์ฌ์ฉ ๊ฐ๋ฅํ ํฌ๊ธฐโ๋ผ๋ ๊ฐ๋
์ ์ค์ํฉ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ํฌ๊ธฐ๋ ๋ถ๋ชจ ์ปจํ
์ด๋ ๋ฐ ๊ธฐํ ๋ ์ด์์ ์ ์ฝ ์กฐ๊ฑด์ ์ํด ๊ฒฐ์ ๋๋ ์์๊ฐ ์ฐจ์งํ ๊ณต๊ฐ์ ์๋ฏธํฉ๋๋ค. ๋ด์ฌ์ ํฌ๊ธฐ๋ ์ด ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ ์์์ ์ต์ข
ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํ๋ ๊ธฐ์ค์ผ๋ก ์ฌ์ฉํฉ๋๋ค. fit-content๋ฅผ ์ฌ์ฉํ ๋ ์ฌ์ฉ ๊ฐ๋ฅํ ํฌ๊ธฐ๋ฅผ ์ดํดํ๋ ๊ฒ์ด ํนํ ์ค์ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, div์ ๋๋น๊ฐ ๋ถ๋ชจ์ 50%๋ผ๋ฉด, ๊ทธ ์์ ์์์ ์ฌ์ฉ ๊ฐ๋ฅํ ํฌ๊ธฐ๋ ๋ถ๋ชจ ๋๋น์ ์ ๋ฐ์
๋๋ค. ๊ทธ๋ฐ ๋ค์ ์์ ์์์ fit-content๋ฅผ ์ ์ฉํ๋ฉด ๋ถ๋ชจ์ ์ฌ์ฉ ๊ฐ๋ฅํ 50%๋ฅผ ์ฐจ์งํ๋ ค๊ณ ์๋ํ์ง๋ง, ์ฝํ
์ธ ๊ฐ ๋ ์์ผ๋ฉด ์ฝํ
์ธ ์ ๋ง๊ฒ ์ถ์๋ฉ๋๋ค.
๊ณ ๊ธ ๊ธฐ๋ฒ ๋ฐ ๊ณ ๋ ค ์ฌํญ
๋ด์ฌ์ ํฌ๊ธฐ ์ธก์ ๊ณผ ๋ค๋ฅธ CSS ์์ฑ ๊ฒฐํฉ
๋ด์ฌ์ ํฌ๊ธฐ ์ธก์ ์ ์ข ์ข ๋ค๋ฅธ CSS ์์ฑ๊ณผ ๊ฒฐํฉ๋ ๋ ๊ฐ์ฅ ์ ์๋ํฉ๋๋ค. ์๋ฅผ ๋ค์ด:
max-width๋ฐmax-height: `max-width` ๋ฐ `max-height`๋ฅผ ์ฌ์ฉํ์ฌ ๋ด์ฌ์ ํฌ๊ธฐ ์ธก์ ์ ์์์ ์ต๋ ํฌ๊ธฐ๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค. ์ด๋ ํนํmax-content๋ฅผ ๋ค๋ฃฐ ๋ ์์๊ฐ ๊ณผ๋ํ๊ฒ ์ปค์ง๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ด๋ฏธ์ง์ `max-width: 100%`๋ฅผ ์ ์ฉํ๋ฉด ์ปจํ ์ด๋๋ฅผ ๋์น์ง ์์ต๋๋ค.min-width๋ฐmin-height: ์ด ์์ฑ์ ์์์ ์ต์ ํฌ๊ธฐ๋ฅผ ์ ์ํ์ฌ ๋๋ฌด ์์์ง์ง ์๋๋ก ํ ์ ์์ต๋๋ค.overflow: ์ฝํ ์ธ ๊ฐ ์์์ ๋ด์ฌ์ ํฌ๊ธฐ๋ฅผ ์ด๊ณผํ ๋ ์ฝํ ์ธ ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ์ดํ๋ ค๋ฉด `overflow` ์์ฑ(์: `overflow: auto`, `overflow: hidden`)์ ์ฌ์ฉํฉ๋๋ค.
์ฑ๋ฅ ๊ณ ๋ ค ์ฌํญ
๋ด์ฌ์ ํฌ๊ธฐ ์ธก์ ์ ๋ฐ์์ฑ์ ํฅ์์ํค์ง๋ง, ํนํ ๋ง์ ์์ ์ฝํ ์ธ ๋ ๋ณต์กํ ๋ ์ด์์์ ๋ค๋ฃฐ ๋ ์ฑ๋ฅ์ ์ผ๋์ ๋๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ์ ๊ณผ๋ํ ๊ณ์ฐ์ ๋ ๋๋ง ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค. ์ด๋ฌํ ์ ์ ๋ช ์ฌํ์ญ์์ค:
- ๊ณผ๋ํ ์ฌ์ฉ ๋ฐฉ์ง: ๊ณ ์ ํฌ๊ธฐ๊ฐ ์ ์ ํ ๊ณณ์ ๋ด์ฌ์ ํฌ๊ธฐ ์ธก์ ์ ๊ณผ๋ํ๊ฒ ์ฌ์ฉํ์ง ๋ง์ญ์์ค. ์๋ฅผ ๋ค์ด, `fit-content`๋ก ํฌ๊ธฐ๊ฐ ์ง์ ๋ ์ฌ์ด๋๋ฐ๋ณด๋ค ๊ณ ์ ๋๋น ์ฌ์ด๋๋ฐ๊ฐ ๋ ๋์ ์ ํ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
- ์ฝํ ์ธ ์ต์ ํ: ์น์ฉ์ผ๋ก ์ฝํ ์ธ ๊ฐ ์ต์ ํ๋์๋์ง ํ์ธํ์ญ์์ค(์: ์ด๋ฏธ์ง ์์ถ).
- ๊ฐ๋ฐ์ ๋๊ตฌ ์ฌ์ฉ: ์ ์ฌ์ ์ธ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ๊ธฐ ์ํด ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ์์ ๋ ์ด์์์ ์ ๊ธฐ์ ์ผ๋ก ํ ์คํธํ์ญ์์ค. ์ต์ ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ ์ฐ์ํ ์ฑ๋ฅ ๋ถ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ ๊ทผ์ฑ
๋ด์ฌ์ ํฌ๊ธฐ ์ธก์ ์ ๊ตฌํํ ๋ ์ ๊ทผ์ฑ์ ๊ณ ๋ คํ์ญ์์ค. ๋ชจ๋ ๋ฅ๋ ฅ์ ์ฌ์ฉ์๊ฐ ์ฝํ ์ธ ๋ฅผ ์ฝ๊ณ ์ ๊ทผํ ์ ์๋์ง ํ์ธํ์ญ์์ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
- ์ถฉ๋ถํ ๋๋น: ํ ์คํธ์ ๋ฐฐ๊ฒฝ์ ๊ฐ์ ์ ์ ํ ๋๋น๋ฅผ ์ ์งํ์ญ์์ค.
- ํ ์คํธ ํฌ๊ธฐ ์กฐ์ : ์ฌ์ฉ์๊ฐ ๋ ์ด์์์ ๊นจ๋จ๋ฆฌ์ง ์๊ณ ํ ์คํธ๋ฅผ ์กฐ์ ํ ์ ์๋๋ก ํฉ๋๋ค.
- ์๋ฏธ๋ก ์ HTML: ์ฝํ
์ธ ๋ฅผ ๋
ผ๋ฆฌ์ ์ผ๋ก ๊ตฌ์กฐํํ๊ธฐ ์ํด ์๋ฏธ๋ก ์ HTML ์์(์:
<header>,<nav>,<article>,<aside>,<footer>)๋ฅผ ์ฌ์ฉํ์ญ์์ค. ์๋ฏธ๋ก ์ HTML์ ํ๋ฉด ํ๋ ๊ธฐ ๋ฐ ๊ธฐํ ๋ณด์กฐ ๊ธฐ์ ์ ๋ํ ์ ๊ทผ์ฑ์ ํฅ์์ํต๋๋ค.
๊ธ๋ก๋ฒ ์น ๋์์ธ์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
๋ค์ํ ์ฅ์น ๋ฐ ์ง์ญ์์ ์ผ๊ด๋๊ฒ ์๋ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ๋ด์ฌ์ ํฌ๊ธฐ ์ธก์ ์ ์ฑํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ธ๋ก๋ฒ ์น ๋์์ธ์ ์ํ ๋ช ๊ฐ์ง ์ฃผ์ ๊ณ ๋ ค ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ํ์งํ: ํ ์คํธ ํ์ฅ ๋ฐ ์ถ์๋ฅผ ์์ฉํ๋๋ก ๋ ์ด์์์ ์ค๊ณํ์ญ์์ค. ๋ค๋ฅธ ์ธ์ด๋ ๋ค๋ฅธ ๋จ์ด ๊ธธ์ด๋ฅผ ๊ฐ์ง๋ฉฐ ๋ฒ์ญ์ ์๋ ์ฝํ ์ธ ๋ณด๋ค ๊ธธ๊ฑฐ๋ ์งง์ ์ ์์ต๋๋ค. ๋ด์ฌ์ ํฌ๊ธฐ ์ธก์ ์ ์ฝํ ์ธ ๊ฐ ์ฐ์ํ๊ฒ ์กฐ์ ๋๋๋ก ํฉ๋๋ค.
- ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ(RTL) ์ธ์ด: RTL ์ธ์ด(์: ์๋์ด, ํ๋ธ๋ฆฌ์ด)์ ์ํฅ์ ๊ณ ๋ คํ๊ณ ์์๊ฐ ์ด๋ป๊ฒ ์๋ํด์ผ ํ๋์ง ๊ณ ๋ คํ์ญ์์ค. ๋ ์ด์์์ด ๋
ผ๋ฆฌ์ ์์ฑ(
start๋ฐend)์ ์ฌ์ฉํ๊ฑฐ๋ ์ ์ ํ CSS ์์ฑ์ ์ฌ์ฉํ์ฌ ์ฝ๊ฒ ์กฐ์ ๋ ์ ์๋๋ก ํ์ญ์์ค. - ๋ฌธ์ ์งํฉ ๋ฐ ๊ธ๊ผด: ๋ค์ํ ๋ฌธ์ ๋ฐ ์ธ์ด๋ฅผ ์ง์ํ๊ธฐ ์ํด ์ ์ ํ ๋ฌธ์ ์งํฉ(์: UTF-8)์ ์ฌ์ฉํ์ญ์์ค. ์น ์์ ๊ธ๊ผด์ ์ ํํ๊ฑฐ๋ ํ์ํ ๊ธ๋ฆฌํ๋ฅผ ์ง์ํ๋ ์น ๊ธ๊ผด์ ๊ตฌํํ์ญ์์ค.
- ๋ฌธํ์ ๊ณ ๋ ค ์ฌํญ: ์ฝํ ์ธ ํ์์ ๋ฌธํ์ ๋์์ค์ ์ง์ญ๋ณ ์ฐจ์ด๋ฅผ ์ธ์งํ์ญ์์ค. ์๋ฅผ ๋ค์ด, ํ ์คํธ ํ๋ฆ์ ๋ฐฉํฅ๊ณผ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
- ์ฅ์น ์ ๋ฐ ํ ์คํธ: ๋์ ์์ฅ์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ค์ํ ์ฅ์น ๋ฐ ํ๋ฉด ํฌ๊ธฐ์์ ์น์ฌ์ดํธ๋ฅผ ์๊ฒฉํ๊ฒ ํ ์คํธํ์ญ์์ค. ์ด๋ ๋ ์ด์์์ด ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํด ์ต์ ํ๋์๋์ง ํ์ธํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๋ค์ํ ๋คํธ์ํฌ ์๋๋ ์๋ฎฌ๋ ์ด์ ํ์ญ์์ค.
- ์ฑ๋ฅ ์ต์ ํ (๋ค์): ์น์ฌ์ดํธ ์ฑ๋ฅ์ ์ ์ธ๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ ํฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๋ก๋ฉ ์๋๊ฐ ๋น ๋ฅผ์๋ก ํ์์ ์ด๋ฉฐ, ํนํ ํน์ ์ง์ญ์์ ์ธํฐ๋ท ์ฐ๊ฒฐ ์๋๊ฐ ๋๋ฆฐ ์ฌ์ฉ์์๊ฒ๋ ๋์ฑ ๊ทธ๋ ์ต๋๋ค. CSS, JavaScript๋ฅผ ์ต์ํํ๊ณ ์ด๋ฏธ์ง๋ฅผ ์ต์ ํํ์ญ์์ค. ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ๋ ๊ฐ๊น์ด ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ(CDN)๋ฅผ ๊ณ ๋ คํ์ญ์์ค.
๊ฒฐ๋ก : ์น ๋ ์ด์์์ ๋ฏธ๋ ์์ฉ
CSS ๋ด์ฌ์ ํฌ๊ธฐ ์ธก์ ์ ๋ฐ์ํ ๋ฐ ์ ์ํ ์น ๋ ์ด์์์ ๊ตฌ์ถํ๋ ๊ฐ๋ ฅํ๊ณ ์ ์ฐํ ์ ๊ทผ ๋ฐฉ์์ ์ ๊ณตํฉ๋๋ค. max-content, min-content ๋ฐ fit-content์ ๊ฐ๋
์ ๋ง์คํฐํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ์ฝํ
์ธ ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ ์๋์ผ๋ก ์กฐ์ ๋๋ ๋์์ธ์ ๋ง๋ค ์ ์์ผ๋ฉฐ, ๋ค์ํ ์ฅ์น ๋ฐ ํ๋ฉด ํฌ๊ธฐ ์ ๋ฐ์ ๊ฑธ์ณ ์ต์ ์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ๋ด์ฌ์ ํฌ๊ธฐ ์ธก์ ์ ์์ฉํ๋ ๊ฒ์ ๋ ์ด์ ์ ํ ์ฌํญ์ด ์๋๋๋ค. ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํด ์ค๊ณ๋ ํ๋์ ์ด๊ณ ์ฌ์ฉ์ ์นํ์ ์ธ ์น์ฌ์ดํธ๋ฅผ ๋ง๋๋ ๋ฐ ํ์์ ์
๋๋ค.
์ฝํ ์ธ ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ ์ ์ํ๋ ๋ ์ด์์์ ๋ง๋๋ ๋ฅ๋ ฅ์ ์ ์ธ๊ณ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ๋ ๋ฐ ์ค์ํฉ๋๋ค. ๋ด์ฌ์ ํฌ๊ธฐ ์ธก์ ๊ธฐ๋ฒ์ ์ดํดํ๊ณ ๊ตฌํํ๋ ๊ฒ์ ๋ณด๋ค ์ ๊ทผ ๊ฐ๋ฅํ๊ณ ๋ฐ์์ ์ธ ์น ๊ตฌ์ถ์ ๊ธฐ์ฌํ ๊ฒ์ ๋๋ค.
์ด๋ฌํ ๊ธฐ๋ฒ์ ์ ์คํ๊ฒ ์ ์ฉํ๊ณ ๊ธ๋ก๋ฒ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๊ณ ๋ คํจ์ผ๋ก์จ ์น ๋์์ธ ๊ธฐ์ ์ ํฅ์์ํค๊ณ ์๊ฐ์ ์ผ๋ก ๋งค๋ ฅ์ ์ผ ๋ฟ๋ง ์๋๋ผ ๊ธฐ๋ฅ์ ์ด๊ณ ์ ๊ทผ ๊ฐ๋ฅํ๋ฉฐ ์ ์ธ๊ณ ์ฌ์ฉ์๋ฅผ ์ํด ์ต์ ํ๋ ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์ถ๊ฐ ์๋ฃ:
- MDN Web Docs: CSS width
- MDN Web Docs: CSS height
- CSS Working Group: CSS Sizing Module Level 4